#include "widget.h"
#include "ui_widget.h"

#include <QDebug>
#include <QKeyEvent>
#include <QMouseEvent>
#include <QMoveEvent>

#include <mylabel.h>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 开启定时器事件
    // 此时timerid是一个定时器的身份标识
    timerid = this->startTimer(1000); // ms

    // 把这个选项设置为true, 才能追踪鼠标的移动位置
    // this->setMouseTracking(true);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::keyPressEvent(QKeyEvent *event)
{
    if(event->key() == Qt::Key_A && event->modifiers() == Qt::ControlModifier)
        qDebug() << "ctrl+A have pressed!";

    if(event->key() == Qt::Key_A)
        qDebug() << "A have pressed!";
}

void Widget::timerEvent(QTimerEvent *event)
{
    // 如果一个程序中存在多个定时器(startTimer创建的定时器), 此时每个定时器都会触发timerEvent
    // 先判定是否是想要的定时器触发的
    if(event->timerId() != this->timerid){
        // 如果不是我们的定时器出发，则直接忽略
        return;
    }

    int value = ui->lcdNumber->intValue();
    if(value <= 0){
        this->killTimer(this->timerid);
        return;
    }

    value-=1;
    ui->lcdNumber->display(value);
}

void Widget::mouseMoveEvent(QMouseEvent *event)
{
    qDebug() << event->x() << event->y();
}

void Widget::moveEvent(QMoveEvent *event)
{
    qDebug() << event->pos();
}

void Widget::resizeEvent(QResizeEvent *event)
{
    qDebug() << event->size();
}

